package com.hhss.qishi.service.impl;

import com.hhss.qishi.config.constant.Constants;
import com.hhss.qishi.entity.common.BasePojo;
import com.hhss.qishi.utils.UUIDUtil;
import org.springframework.util.StringUtils;

import java.io.Serializable;
import java.util.Date;

/**
 * 公共Service实现类
 * 共有字段 uuid，status，createUser，lastUpdateUser等
 * @author Administrator
 *
 * @param <T>
 */
//@Service
public class CommonServiceImpl<T extends BasePojo, PK extends Serializable> extends ServiceImpl<T, PK> {
	
    public int invalidById(PK Id) {
    	T po = mapper.selectByPrimaryKey(Id);
    	// 移除标识
    	po.setStatus(Constants.DB_STATUS_DISABLE);
    	po.setLastUpdateTime(new Date());
    	return mapper.updateByPrimaryKey(po);
    }
 
    public int add(T pojo) {
    	if(StringUtils.isEmpty(pojo.getUuid())) {
    		pojo.setUuid(UUIDUtil.getUUID());
    	}
    	pojo.setCreateTime(new Date());
    	// return mapper.insert(pojo);  // 实体null的字段也保存，不使用数据库默认值
        return mapper.insertSelective(pojo);
    }
 
    public int updateById(T pojo) {
    	pojo.setLastUpdateTime(new Date());
        return mapper.updateByPrimaryKeySelective(pojo);
    }
   
}